# -*- coding: utf-8 -*-
"""
@Time    : 2025/2/25 14:04 
@Author  : ZhangShenao 
@File    : 2.线性回归.py 
@Desc    : 线性回归

线性回归是一个预测分析技术，主要用于研究两个或多个变量之间的关系
简单来说,它尝试用一条直线（在二维空间中）或一个平面（在三维空间中）等,尽可能地拟合这些变量间的数据点
这条直线或平面可以用来预测或估计一个变量基于另一个变量的值
线性回归是一种非常实用的工具，广泛应用于经济学、生物统计学、环境科学和许多其他领域

本示例采用线性回归模型,拟合房屋面积与价格之间的关系
进而实现通过面积预测房价
"""
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression

# 定义数据
# X: 特征值,代表房屋面积
# y: 目标值,代表房屋价格
X = np.array([35, 45, 40, 60, 65]).reshape(-1, 1)  # 面积
y = np.array([30, 40, 35, 60, 65])  # 价格

# 创建线性回归模型并训练
model = LinearRegression()
model.fit(X, y)

# 预测面积为50平方米的房屋价格
predict_area = np.array([50]).reshape(-1, 1)
predicted_price = model.predict(predict_area)
print(f"预测的房价为：{predicted_price[0]:.2f}万美元")

# 绘制数据点和拟合直线
plt.scatter(X, y, color='blue')
plt.plot(X, model.predict(X), color='red')
plt.title('房价预测')
plt.xlabel('面积（平方米）')
plt.ylabel('价格（万元）')
plt.show()
